<?php  namespace Common\Model;
use Hdphp\Model\Model;
class Category extends Model{
//	指定表名
	protected $table='category';
//    自动验证
//array(字段名,验证方法,错误信息,验证条件,验证时间)
    protected $validate=array(
        array('cname','required','分类名称不能为空',3,3),
    );	
	    public function store(){
        if($this->create()){
//            $this->data里面必须有数据才能添加  返回真
//			p(Q('post.'));exit;
            $this->add();
            return  true;
        }
//        否则返回false
        return  false;

      
    }
//    编辑
    public function edit(){
        if (!$this->create()) return false;			
        	$cid=Q('post.cid',0,'intval');
			$this->create();			
            $this->save();
			$type=new \Common\Model\Type;
			$this->create();
			$type->where("type_tid={$cid}")->save();
        
        return true;
    }
//    获得除了自己和自己的子级以外的数据
    public function getNoMy($cid){
        $cids=$this->getSon($this->get(),$cid);
//        压入自己的cid
        $cids[]=$cid;
//      cid不在$cids里面的数据  把数组用,分隔转化成字符串
        $where="cid NOT IN(" .implode(',',$cids).")";
//        返回查找到cid除了$cids里面的数据以外的数据
        return $this->where($where)->get();
    }
    
    

//    获得子级
    public function getSon($data,$cid){
        $temp=array();
//        循环数据
        foreach ($data as $v){
//            如果$v['pid']等于$cid 说明是他的子级
            if ($v['pid']==$cid){
//                就把这条数据的cid放进数组
                $temp[]=$v['cid'];
//                用递归的方法一直找子级  找到一个就压进数组里 直到找完
                $temp=array_merge($temp,$this->getSon($data,$v['cid']));
            }

        }
//        返出结果
        return $temp;

    }
	
}
